﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace GestorDeFlotasDesktop.AbmChofer
{
    public partial class AbmChofer : Form
    {
        public AbmChofer(Modelo.FormActions.Actions action, string id)
        {
            InitializeComponent();
            pk.Visible = false;
            lbl_estado.Text = "ALTA";
            tb_grande.Visible = false;

            if (action == Modelo.FormActions.Actions.Modificacion || action == Modelo.FormActions.Actions.Baja)
            {
                lbl_estado.Text = "MODIFICACION";

                using (SqlConnection con = Modelo.Modelo.createConnection())
                {
                    SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM NUNCA_TAXI.Choferes WHERE Id_Chofer = " + id, con);

                    DataTable dt = new DataTable();

                    da.Fill(dt);

                    //Ch_Nombre,Ch_Apellido,Ch_Dni,Ch_Direccion,Ch_Telefono,Ch_Mail,Ch_Fecha_Nac,Ch_Habilitado
                    pk.Name = id;

                    tb_nombre.Text = dt.Rows[0]["Ch_Nombre"].ToString();
                    tb_apellido.Text = dt.Rows[0]["Ch_Apellido"].ToString();
                    tb_dni.Text = dt.Rows[0]["Ch_Dni"].ToString();
                    tb_grande.Text = dt.Rows[0]["Ch_Direccion"].ToString();
                    tb_tel.Text = dt.Rows[0]["Ch_Telefono"].ToString();
                    tb_mail.Text = dt.Rows[0]["Ch_Mail"].ToString();
                    dt_nacimiento.Value = DateTime.Parse(dt.Rows[0]["Ch_Fecha_Nac"].ToString());

                    label7.Visible = label8.Visible = label9.Visible = label11.Visible = false;
                    tb_dpto.Visible = tb_localidad.Visible = tb_nropiso.Visible = tb_cp.Visible = false;
                    tb_grande.Visible = true;

                    if (Convert.ToBoolean(dt.Rows[0]["Ch_Habilitado"].ToString()) == false)
                    {
                        cb_habi.Checked = false;
                    }
                    else
                    {
                        cb_habi.Checked = true;
                    }

                    if (action == Modelo.FormActions.Actions.Baja)
                    {
                        lbl_estado.Text = "BAJA";
                        Propiedades.Enabled = false;
                    }

                    try
                    {
                        Modelo.Modelo.openConnection(con);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                    finally
                    {
                        Modelo.Modelo.closeConnection(con);
                    }
                }
            }
        }

        private void AbmChofer_Load(object sender, EventArgs e)
        {

        }

        private void aceptar_Click(object sender, EventArgs e)
        {
            using (SqlConnection con = Modelo.Modelo.createConnection())
            {
                if (lbl_estado.Text == "ALTA")
                {
                    SqlCommand comando = new SqlCommand("INSERT INTO NUNCA_TAXI.Choferes(Ch_Nombre,Ch_Apellido,Ch_Dni,Ch_Direccion,Ch_Telefono,Ch_Mail,Ch_Fecha_Nac,Ch_Habilitado) VALUES(@nom,@ape,@dni,@dire,@tel,@mail,@fech,@habi)", con);
                    comando.Parameters.AddWithValue("nom", tb_nombre.Text);
                    comando.Parameters.AddWithValue("ape", tb_apellido.Text);
                    comando.Parameters.AddWithValue("dni", tb_dni.Text);
                    comando.Parameters.AddWithValue("dire", "(" + tb_dir.Text + ") (" + tb_dpto.Text + ") (" + tb_nropiso.Text + ") (" + tb_localidad.Text + ") (" + tb_cp.Text + ")");
                    comando.Parameters.AddWithValue("tel", tb_tel.Text);
                    comando.Parameters.AddWithValue("mail", tb_mail.Text);
                    comando.Parameters.AddWithValue("fech", dt_nacimiento.Value);
                    if (cb_habi.Checked == true)
                    {
                        comando.Parameters.AddWithValue("habi", 1);
                    }
                    else if (cb_habi.Checked == false)
                    {
                        comando.Parameters.AddWithValue("habi", 0);
                    }

                    try
                    {
                        Modelo.Modelo.openConnection(con);
                        comando.ExecuteNonQuery();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                    finally
                    {
                        tb_nombre.Text = "";
                        tb_apellido.Text = "";
                        tb_dni.Text = "";
                        tb_dir.Text = "";
                        tb_tel.Text = "";
                        tb_mail.Text = "";
                        tb_dpto.Text = "";
                        tb_nropiso.Text = "";
                        tb_localidad.Text = "";
                        tb_cp.Text = "";
                        cb_habi.Checked = false;
                        dt_nacimiento.Value = System.DateTime.Now;
                        Modelo.Modelo.closeConnection(con);
                    }
                }
                if (lbl_estado.Text == "MODIFICACION")
                {
                    SqlCommand comando = new SqlCommand("UPDATE NUNCA_TAXI.Choferes SET Ch_Nombre=@nom,Ch_Apellido=@ape,Ch_Dni=@dni,Ch_Direccion=@dire,Ch_Telefono=@tel,Ch_Mail=@mail,Ch_Fecha_Nac=@fech,Ch_Habilitado=@habi WHERE Id_Chofer = '" + pk.Name + "'", con);
                    comando.Parameters.AddWithValue("nom", tb_nombre.Text);
                    comando.Parameters.AddWithValue("ape", tb_apellido.Text);
                    comando.Parameters.AddWithValue("dni", Convert.ToDecimal(tb_dni.Text));
                    comando.Parameters.AddWithValue("dire", tb_grande.Text);
                    comando.Parameters.AddWithValue("tel", Convert.ToDecimal(tb_tel.Text));
                    comando.Parameters.AddWithValue("mail", tb_mail.Text);
                    comando.Parameters.AddWithValue("fech", dt_nacimiento.Value);
                    if (cb_habi.Checked == true)
                    {
                        comando.Parameters.AddWithValue("habi", 1);
                    }
                    else if (cb_habi.Checked == false)
                    {
                        comando.Parameters.AddWithValue("habi", 0);
                    }

                    try
                    {
                        Modelo.Modelo.openConnection(con);
                        comando.ExecuteNonQuery();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                    finally
                    {
                        Modelo.Modelo.closeConnection(con);
                    }
                }
                if (lbl_estado.Text == "BAJA")
                {
                    SqlCommand comando = new SqlCommand("UPDATE NUNCA_TAXI.Choferes SET Ch_Habilitado=@habi WHERE Id_Chofer = '" + pk.Name + "'", con);
                    comando.Parameters.AddWithValue("habi", 0);
                    try
                    {
                        Modelo.Modelo.openConnection(con);
                        comando.ExecuteNonQuery();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                    finally
                    {
                        Modelo.Modelo.closeConnection(con);
                    }
                }
            }                
        }
    }
}
